/**
 *  merge: Object 当前需要合并的项组成的对象，属性为  [相同的合并字段]:[相同项的索引数组]。
 *  dataList: Array 传入的需要处理的table渲染数组。
 */
function computeMergeSpan(merge, dataList) {
  // 遍历计算合并行数
  for (const key in merge) {
    const fristData = dataList.filter((item, index) => index === merge[key][0])[0];
    // 获取第一条数据，对其添加 'firstSpan' 属性，并设置值
    if (fristData) fristData['firstSpan'] = merge[key].length;
  }
}
/**
 *  dataList: Array 传入的需要处理的table渲染数组。
 *  label: String 传入的合并依据字段。
 */
export function buildMerge(dataList, label) {
  const merge = {};
  let mergeKey = '';
  dataList.forEach((item, index) => {
    mergeKey = item[label];
    merge[mergeKey] = merge[mergeKey] ? [...merge[mergeKey], index] : [index];
  });
  computeMergeSpan(merge, dataList);
}
/**
 *  返回合并行数和列数
 */
export function resetTable(row, obj) {
  if (row && row[obj] !== 0) {
    return { rowspan: row[obj], colspan: 1 };
  } else {
    return { rowspan: 0, colspan: 0 };
  }
}
